home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / AMReminder / AMReminderDoc.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  1.8 KB  |  123 lines  |  [TEXT/CWIE]

  1. { AMReminderDoc.p -- document-level functions }
  2.  
  3. Unit AMReminderDoc;
  4. Interface
  5.  
  6. Uses
  7.     Types,
  8.     Events,
  9.     Files,
  10.     Menus,
  11.     AMReminderEngine,
  12.     AMDoc;
  13.  
  14. type
  15.     AMReminderDoc        = object (AMDoc)
  16.  
  17.     {data members}
  18.         mMainWindowPtr:        WindowPtr;
  19.  
  20.     {methods - public}
  21.         Procedure Initialize; Override;
  22.  
  23.         Function  DoCommand        (inCommand:    longint): Boolean; Override;
  24.  
  25.     {methods - internal}
  26.         Procedure OpenWindows; Override;
  27.         Function  WouldCloseDoc        (windPtr:    WindowPtr): Boolean; Override;
  28.  
  29.         Function  GetEngine: AMReminderEngine;
  30.  
  31.     end;
  32.  
  33. {----------}
  34. Function NewAMReminderDoc: AMReminderDoc;
  35.  
  36. {----------}
  37. Implementation
  38.  
  39. Uses
  40.     ResourceDefs,
  41.     Globals,
  42.  
  43.     DDocData,
  44.     MainWindow,
  45.     Miscellany;
  46.  
  47. {----------}
  48. Function NewAMReminderDoc: AMReminderDoc;
  49. var
  50.     doc:        AMReminderDoc;
  51. begin
  52.     New (doc);
  53.     if doc <> nil then begin
  54.         doc.Initialize;
  55.     end;
  56.     NewAMReminderDoc := doc;
  57. end;
  58.  
  59. {----------}
  60. Procedure AMReminderDoc.Initialize;
  61. begin
  62.     inherited Initialize;
  63.  
  64.     mEngine := NewAMReminderEngine;
  65.  
  66.     mMainWindowPtr := nil;
  67. end;
  68.  
  69. {----------}
  70. Function  AMReminderDoc.GetEngine: AMReminderEngine;
  71. begin
  72.     GetEngine := AMReminderEngine (mEngine);
  73. end;
  74.  
  75. {----------}
  76. Procedure AMReminderDoc.OpenWindows;
  77. var
  78.     engine:        AMReminderEngine;
  79. Begin
  80.     engine := GetEngine;
  81.  
  82.     { replace this code to get data from someplace useful }
  83.  
  84.     CreateMainWindow (self, engine.GetDocData);
  85. End;
  86.  
  87. {----------}
  88. Function AMReminderDoc.WouldCloseDoc (
  89.     windPtr:        WindowPtr): Boolean;
  90. var
  91.     numOpen:        integer;
  92. Begin
  93.     numOpen := 0;
  94.  
  95.     if mMainWindowPtr <> nil then        numOpen := numOpen + 1;
  96.  
  97.     WouldCloseDoc := (numOpen <= 1);
  98. End;
  99.  
  100. {----------}
  101. Function AMReminderDoc.DoCommand (
  102.     inCommand:        longint): Boolean;
  103. begin
  104.     DoCommand := true;
  105.     case inCommand of
  106.         cmdSave:
  107.                 DoSave;
  108.         cmdSaveAs:
  109.                 DoSaveAs;
  110.         cmdRevert:
  111.                 DoRevert;
  112.         cmdPageSetup:
  113.                 DoPageSetup;
  114.         cmdPrint:
  115.                 DoPrint;
  116.  
  117.         otherwise
  118.                 DoCommand := false;
  119.     end; {case}
  120. end;
  121.  
  122. end.
  123.